//
//  Extention+NSDate.swift
//  WeiboSwift
//
//  Created by 战场原黑仪 on 16/7/28.
//  Copyright © 2016年 战场原黑仪. All rights reserved.
//

import Foundation

//日历类
private let calendar = NSCalendar.currentCalendar()

extension NSDate {
    
    //返回指定格式的日期,用属性实现
    var sinaDescripitionStr: String {
        // 判断是否是今年
        let isThisYear = self.sinaIsThisYear(self)
        
        if isThisYear {
            //如果是今年的
            //判断是否是今天
            if calendar.isDateInToday(self) {
                //如果是今天
                let second = Int(NSDate().timeIntervalSinceDate(self))
                if second < 60 {
                    return "刚刚"
                }else if second >= 60 && second < 3600 {
                    return "\(second/60)分钟前"
                }else {
                    return "\(second/3600)小时前"
                }
                
            }else if calendar.isDateInYesterday(self){
                //如果是昨天
                Defautl_DateFormatter.dateFormat = "昨天: HH: mm"
            }else {
                //如果是更早的
                Defautl_DateFormatter.dateFormat = "MM月dd日 HH:mm"
            }
        }else {
            //如果不是今年的
            Defautl_DateFormatter.dateFormat = "yyyy年MM月dd日 HH:mm"
        }
        return Defautl_DateFormatter.stringFromDate(self)
    }
    
    // 转换微博日期
    class func sinaDate(createAt: String) -> NSDate?{
        // 设置locate 指定地区 如果不指定 在真机中时间会有问题
        Defautl_DateFormatter.locale = NSLocale(localeIdentifier: "en_US")
        // 指定格式
        Defautl_DateFormatter.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
        return Defautl_DateFormatter.dateFromString(createAt)
    }
    
    // 判断微博时间是否是今年
    private func sinaIsThisYear(sinaDate: NSDate) -> Bool{
        // 指定时间格式
        Defautl_DateFormatter.dateFormat = "yyyy"
        // 获取当前的日期
        let currentDate = NSDate()
        // 微博日期字符串
        let sinaStr = Defautl_DateFormatter.stringFromDate(sinaDate)
        // 当前日期字符串
        let currentStr = Defautl_DateFormatter.stringFromDate(currentDate)
        return sinaStr == currentStr
    }

    
    
    
}